#ifndef ALIEN_ATTACK_TEXTUREMANAGER_H
#define ALIEN_ATTCK_TEXTUREMANAGER_H

#include <SDL2/SDL.h>
#include <iostream>
#include <string>
#include <map>

struct TextureManager
{
    static TextureManager *Instance()
    {
        if (s_pInstance == NULL)
        {
            s_pInstance = new TextureManager();
            return s_pInstance;
        }
        return s_pInstance;
    }
    
    // TODO:

private:
    TextureManager() {}
    ~TextureManager() {}

    TextureManager(const TextureManager &);
    TextureManager &operator=(const TextureManager &);

    std::map<std::string, SDL_Texture *> m_textureMap;

    static TextureManager *s_pInstance;
};

using TheTextureManager = TextureManager;
#endif // header file protect